﻿/////////////////////////////////////////////////////////////////////
//
//	Map_FVG C# Class Library.
//
//	Quadro3
//	
//
//	autore: Gustavo Mainardi 
//	versione: 1.0
//	data: 01/12/2015
//
//
//	Cronologia delle versioni:
//
//	Versione 1.0 01/12/2015
//		versione originale
//
//////////////////////////////////////////////////////////////////////////
using System;
using System.Drawing;
using System.Windows.Forms;
using System.IO;


namespace Map_Fvg
{
    
    public partial class Quadro3 : Form
    {
        static public string codiceTavoletta;
        static public string IDTavoletta;
        static public string codiceSezione; 
        
        static public string ss1;
        static public string ss2;

        public Quadro3()
        {
            InitializeComponent();

            textBox1.Text = codiceTavoletta;
            textBox2.Text = IDTavoletta;

            elemento_selez = string.Empty;

            dataGridView1.ColumnCount = 3;
            this.dataGridView1.Columns[0].HeaderText = "sezione";
            this.dataGridView1.Columns[1].HeaderText = "elemento";
            this.dataGridView1.Columns[2].HeaderText = "nome elemento/sezione";

            this.dataGridView1.Columns[0].Width = 70;
            this.dataGridView1.Columns[1].Width = 70;
            this.dataGridView1.Columns[2].Width = 250;

            this.dataGridView1.AllowUserToAddRows = false;
            this.dataGridView1.AllowUserToDeleteRows = false;

            DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn();
            {
                column.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;
                column.FlatStyle = FlatStyle.Standard;
                column.ThreeState = false;
                column.CellTemplate = new DataGridViewCheckBoxCell();
                column.CellTemplate.Style.BackColor = Color.White;
                column.HeaderText = "archivio locale";
            }

            dataGridView1.Columns.Insert(3, column);

            int iquad = int.Parse(codiceTavoletta.Substring(3, 1));
            string ss = codiceTavoletta.Substring(0, 3);
            //           MessageBox.Show(iquad.ToString()+ "  " + ss);
            switch (iquad)
            {

                case 1:
                    trovaSezioniElementi(ss, "03");
                    trovaSezioniElementi(ss, "04");
                    trovaSezioniElementi(ss, "07");
                    trovaSezioniElementi(ss, "08");
                    break;
                case 2:
                    trovaSezioniElementi(ss, "11");
                    trovaSezioniElementi(ss, "12");
                    trovaSezioniElementi(ss, "15");
                    trovaSezioniElementi(ss, "16");
                    break;
                case 3:
                    trovaSezioniElementi(ss, "09");
                    trovaSezioniElementi(ss, "10");
                    trovaSezioniElementi(ss, "13");
                    trovaSezioniElementi(ss, "14");
                    break;
                case 4:
                    trovaSezioniElementi(ss, "01");
                    trovaSezioniElementi(ss, "02");
                    trovaSezioniElementi(ss, "05");
                    trovaSezioniElementi(ss, "06");
                    break;
            }

            int count = dataGridView1.Rows.Count;
            for (int i = 0; i < count; ++i)
            {
                string s1 = dataGridView1[0, i].Value.ToString();
                s1 = s1.Trim();
                if (!string.IsNullOrEmpty(s1))
                {
                    dataGridView1[3, i].Value = trovaSezione(s1);
                } 
                else
                {
                    s1 = dataGridView1[1, i].Value.ToString();
                    s1 = s1.Trim();
                    if (!string.IsNullOrEmpty(s1))
                    {
                        dataGridView1[3, i].Value = trovaElemento(s1);
                    } 
                }
            }
        }

        private void trovaSezioniElementi(string ss, string s3)
        {
            int k = 0;
            string s1 = string.Concat(ss, s3);

            for (int i = 0; i < QuadroUnione3.nrec; ++i)
            {

                string s2 = QuadroUnione3.elem[i].codice.Substring(0, 5);
                if (s2.Contains(s1))
                {
                    string[] row = new string[] { " ", QuadroUnione3.elem[i].codice, QuadroUnione3.elem[i].IDtavol };
                    dataGridView1.Rows.Add(row);
                    ++k;
                }
            }
            if (k > 0)
            {
                s1 = string.Concat(ss, s3,"0");

                for (int i = 0; i < QuadroUnione3.nrec2; ++i)
                {

                    string s2 = QuadroUnione3.sez[i].codice;
                    if (s2.Contains(s1))
                    {
                        string[] row = new string[] { QuadroUnione3.sez[i].codice," ", QuadroUnione3.sez[i].IDtavol };
                        dataGridView1.Rows.Add(row);
                        ++k;
                    }
                }
            }

       }

        private bool trovaSezione(string s1)
        {
            string[] fileEntries = Directory.GetFileSystemEntries(FormIniz.cartellaSezioni);
            bool bResult = false;
            foreach (string fileName in fileEntries)
            {
                bResult = fileName.Contains(s1);
                if (bResult) break;
            }

            if (bResult) return true;

            return false;
        }

        private bool trovaElemento(string s1)
        {
            string[] fileEntries = Directory.GetFileSystemEntries(FormIniz.cartellaElementi);
            bool bResult = false;
            foreach (string fileName in fileEntries)
            {
                bResult = fileName.Contains(s1);
                if (bResult) break;
            }

            if (bResult) return true;

            return false;

        }

        private void button2_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        public static string elemento_selez;

        private void button1_Click(object sender, EventArgs e)
        {
            int count = dataGridView1.Rows.Count;
            for (int i = 0; i < count; ++i)
            {
                string s1 = dataGridView1[1, i].Value.ToString();
                s1 = s1.Trim();
                if (!string.IsNullOrEmpty(s1) && dataGridView1.Rows[i].Selected)
                {
 
                   string s2 = dataGridView1[2, i].Value.ToString();
                   s2 = s2.Trim();
                   int len = s1.Length;
                   codiceSezione = s1.Substring(0, len - 1);
                   codiceSezione = string.Concat(codiceSezione,"0");

                   string path = FormIniz.cartellaSezioni;
                   path = string.Concat(path,codiceSezione);
                   elemento_selez = s1;
                   Directory.CreateDirectory(path);

                   ss1 = s1;
                   ss2 = s2;
                   WebForm webQuadro = new WebForm();
                   webQuadro.Visible = false;
                   webQuadro.ShowDialog();
                   if (QuadroUnione3.dResult == DialogResult.OK) this.Close();
                }
            }
        }



    }
}
